From b9e99fa85ded716ae54376b3c5f6f78e1a353f03 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Fri, 2 May 2008 13:47:46 +0100 Subject: [PATCH] ioemu: pump SDL events on resize When sdl_resize resizes the SDL window, some window manager send back a ConfigureNotify event, which triggers a SDL_VIDEORESIZE event. That event, however, is seen only much later, on the next VGA refresh round. If the guest quickly switches to another resolution in between, the SDL_VIDEORESIZE event makes us erroneously rescale that new resolution into the old one. This patch makes us pump that window manager event, so that no SDL_VIDEORESIZE event is generated. Signed-off-by: Samuel Thibault --- tools/ioemu/sdl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/ioemu/sdl.c b/tools/ioemu/sdl.c index 536e9f480f..c70c3cb7ad 100644 --- a/tools/ioemu/sdl.c +++ b/tools/ioemu/sdl.c @@ -235,6 +235,9 @@ static void sdl_resize(DisplayState *ds, int w, int h, int linesize) again: screen = SDL_SetVideoMode(w, h, 0, flags); + /* Process any WM-generated resize event */ + SDL_PumpEvents(); + if (!screen) { fprintf(stderr, "Could not open SDL display: %s\n", SDL_GetError()); if (opengl_enabled) { -- 2.30.2